#!/usr/bin/env bash
phpversion=$(php -v)
phpversion=$(echo ${phpversion}|awk -F 'PHP ' '{print $2}')
php_version=$(echo ${phpversion}|awk -F ' (cli)' '{print $1}')
phpversion=$(echo ${php_version}|awk -F '.' '{print $1}')$(echo ${php_version}|awk -F '.' '{print $2}')

if [ ! -n "$phpversion" ] ;then
    echo -e "\033[31m 请先安装PHP，版本 >= 7.2 ！ \033[0m"
    exit 0
fi

echo -e "\033[36m 您正在执行系统安装程序，请根据下面提示正确输入相关信息，否则可能会导致系统安装失败！【PHP：${php_version}】 \033[0m"

# env 配置
read -p "请输入应用名称（必须是字母且首字母大写，默认：Laravel）：" appname
read -p "【必填】请输入数据库名称：" database
read -p "【必填】请输入数据库用户名：" databaseuser
read -p "【必填】请输入数据库密码：" databasepwd

if [ ! -n "$appname" ] ;then
    appname="Laravel"
fi

echo -e "\033[36m 创建.env文件并修改部分配置... \033[0m"

cp .env.example .env

# 修改env文件 添加数据库配置信息
sed -i "s/APP_NAME=/APP_NAME=${appname}/" .env
sed -i "s/DB_DATABASE=/DB_DATABASE=${database}/" .env
sed -i "s/DB_USERNAME=/DB_USERNAME=${databaseuser}/" .env
sed -i "s/DB_PASSWORD=/DB_PASSWORD=${databasepwd}/" .env

echo -e "\033[36m 修改几个目录权限... \033[0m"
chown -R www:www bootstrap/cache
chmod -R 755 bootstrap/cache
chown -R www:www storage
chmod -R 755 storage

# 生成 app_key
echo -e "\033[36m 生成 APP_KEY... \033[0m"
php artisan key:generate

# 数据库文件迁移
echo -e "\033[36m 数据库迁移... \033[0m"
php artisan migrate

# 安装passport
echo -e "\033[36m 安装passport... \033[0m"
php artisan passport:install

# 再次执行数据库文件迁移  当迁移文件中有涉及修改数据的逻辑时 在 php artisan passport:install 之前的迁移过程中会报错
echo -e "\033[36m 再次执行数据库迁移【上面的迁移过程中可能会有报错】... \033[0m"
php artisan migrate

# 修改 oauth_clients
echo -e "\033[36m 修改 oauth_clients 并设置 env 相关配置... \033[0m"
php artisan authclient

# 执行 seed
echo -e "\033[36m 执行 seed... \033[0m"
php artisan db:seed
php artisan module:seed

echo -e "\033[36m 创建相应符号链接... \033[0m"
php artisan storage:link

# 刷新权限
php artisan refreshpermission

# 修改环境 APP_ENV=production
# sed -i "s/APP_ENV=local/APP_ENV=production/" .env

# 修改 .env 文件权限
chown -R www:www .env
chmod -R 755 .env

# 将 config/modules.php 配置文件中 'activator' => 'file' 修改为 'activator' => 'database'
# sed -i "s/'activator' => 'file'/'activator' => 'database'/" config/modules.php
# 删除 modules_statuses.json 文件
# rm -rf modules_statuses.json

echo -e "\033[42;37m 完成！请手动进行相应配置。 \033[0m"